# 参数：就是在调用函数时，就是向函数中传值的作用
"""
无参：
    def 函数名()
        pass
有参：
    def 函数名(参数1，参数2，参数3)
        函数体
        pass
带多个参数的函数：
    多个参数
    默认值、关键字参数
默认值参数：（属于缺省参数，）
    def 函数名(参数1，参数2，参数3=值)
        pass
    def 函数名(参数1，参数2，*args，参数3=值)
        pass
    调用可以不给默认值参数赋值：
        函数名(值1，值2)

    注意：
        定义函数：普通参数要位于默认参数之前
            正确：def 函数名(参数1，参数2，参数3=值)
            错误：def 函数名(参数1，参数3=值，参数2)
"""


# 最多登录三次:retry_num:重试次数，默认三次
def login(retry_num=3):
    error_num = 1
    while error_num <= retry_num:
        username = input('请输入用户名：')
        password = input('请输入密码：')
        if 'admin'.__eq__(username) and '1234'.__eq__(password):
            return '登录成功'
        else:
            if retry_num - error_num > 0:
                print('用户名或者密码错误允许错误{}次，还有{}次'.format(retry_num, retry_num - error_num))
                error_num += 1  # 每错一次加1
            else:
                break
    return '用户名或者密码错误次数过多，请稍后重试！'


rst = login(4)
print(rst)

'''
求 1-n之间和；但是n必须是参数
'''


def sm(n):
    return sum(i for i in range(n + 1))


# 两个数求和
def get_sm(a, b):
    if type(a) == type(b) and isinstance(a, int) and isinstance(b, int):  # isinstance：类型判断
        return a + b
    else:
        return "类型不一致！"


# 调用
print(sm(100))
print(get_sm(1, 2))

# 借书




